import log from '@dfeidao/atom-nodejs/logger/log';
import { IncomingHttpHeaders } from 'http';
import query from "@dfeidao/atom-nodejs/db/query";
import count from '@dfeidao/atom-nodejs/db/count';
import { systemid, productid } from '../../atom/config';
interface Message {
	hidden_name: string,
	page_no: number,
	plan_item_no: string,
	// cookie: {
	// 	uk: string;
	// 	[key: string]: string
	// };
	// urls: {
	// 	base: string;
	// 	origin: string;
	// 	url: string;
	// };
	// query: {};
	// params: {};
	// headers: {};
	// captcha: string;
}

interface IWebResult {
	data: unknown;
	cookie?: {
		[name: string]: string;
	} | null;
	content_type?: string;
	headers?: {
		[key: string]: string[];
	};
	attachment?: string;
	redirect?: string;
	status_code?: number;
}

interface par {
	hidden_source: string
}

// 表名	hazard_source				
// 标题	隐患源				
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// productid	产品ID	string	50	√	ⅹ
// hidden_source	隐患源编号	string	32	√	ⅹ
// duty_department_no	责任部门编号	string	50	√	ⅹ
// duty_department	责任部门名称	string	50	√	ⅹ
// responsible	责任人名称	string	50	√	ⅹ
// responsible_task_no	任务责任人编号	string	50	√	ⅹ
// hidden_code	隐患源代码	string	32	√	ⅹ
// hidden_name	隐患源名称	string	32	√	ⅹ
// control_level	管控级别	string	32	√	ⅹ
// control_grade	管控层级	string	32	√	ⅹ
// assess_level	评价级别	string	32	√	ⅹ
// engineer_skill	工程技术	string	128	√	ⅹ
// manage_measure	管理措施	string	128	√	ⅹ
// train_education	培训教育	string	128	√	ⅹ
// emergency_measures	应急处置措施	string	128	√	ⅹ
// personal_protect	个体防护	string	128	√	ⅹ

// 表名	plan_hidden_source				
// 标题	计划隐患源				
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// plan_item_no	计划项目编号	string	50	√	ⅹ
// hidden_code	隐患源代码	string	32	√	ⅹ
// hidden_name	隐患源名称	string	32	√	ⅹ
// productid	产品ID	string	50	√	ⅹ
// hidden_source	隐患源编号	string	32	√	ⅹ


export default async function atom(message: Message, action_id: string, session_id: string, headers: IncomingHttpHeaders): Promise<IWebResult> {
	log('Service begin path:e:\王举\学习文件\飞道工作文件\测试项目\kh\src\wangju\zj-000008\s001,action_id:' + action_id);

	const { prepare, exec } = query(action_id, session_id, systemid);
	prepare('hazard_source', ['hidden_source', 'hidden_code', 'hidden_name', 'control_level', 'control_grade', 'assess_level',], { productid, hidden_name: { $like: '%' + message.hidden_name + '%' } }, 5, message.page_no, [], []);
	const [dt] = await exec();
	prepare('plan_hidden_source', ['hidden_source', 'hidden_code', 'hidden_name', 'plan_item_no'], { productid, plan_item_no: message.plan_item_no }, 1, 1, [], []);

	const [dt1] = await exec<par>();
	// const data = dt1[0];
	// const v = data[0].hidden_source;
	// prepare('hazard_source', ['hidden_source', 'hidden_code', 'hidden_name', 'plan_item_no'], { productid, hidden_source: v }, 5, 1, [], []);
	// const [dt2] = await exec();

	const p = count(action_id, session_id, systemid);
	p.prepare('hazard_source', { productid, hidden_name: { $like: '%' + message.hidden_name + '%' } });
	const [c] = await p.exec();



	log('Service end path:e:\王举\学习文件\飞道工作文件\测试项目\kh\src\wangju\zj-000008\s001,action_id:' + action_id);
	return { data: { dt, dt1, c } } as IWebResult;
}
